package com.crx.springbootinit.utils;

import com.crx.springbootinit.common.ErrorCode;
import com.crx.springbootinit.exception.ThrowUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;


/**
 * @Author: 谢杭延
 * @CreateTime: 2024-11-02
 * @Description: 获取用户id工具类
 * @Version: 1.0
 */
@Slf4j
public class AuthUtils {
    private AuthUtils() {
        // 私有构造器，防止实例化
    }

    /**
     * 检查用户是否已登录
     *
     * @param redisTemplate RedisTemplate 实例
     * @param token 用户 token
     * @return 用户 ID
     */
    public static Long getUserId(RedisTemplate redisTemplate, String token) {
        if(token==null){
            ThrowUtils.throwIf(true,ErrorCode.NOT_LOGIN_ERROR,"未登录!请登录后操作！");
        }
        Long userId =(Long) redisTemplate.opsForValue().get(token);
        if (userId == null) {
            ThrowUtils.throwIf(true, ErrorCode.NOT_LOGIN_ERROR, "未登录!请登录后操作！");
        }
        return userId;
    }
}
